home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / business / pb031.dms / pb031.adf / EasyCalc.doc < prev    next >
Text File  |  1992-11-20  |  41KB  |  1,015 lines

  1.        /-------/          /           /------/
  2.       / /-----/        -=*=-         / /----/
  3.      / /                /           / /
  4.     / /---/   /----/ /----/ /    / / /       /----/ /      /----/
  5.    / /---/   /    / /      /    / / /       /    / /      /
  6.   / /       /----/ /----/ /----/ / /       /----/ /      /
  7.  / /-----/ /    /      /      / / /-----/ /    / /      /
  8. /-------/ /    / /----/ /----/ /-------/ /    / /----/ /----/
  9.                                                  VERSION 1.0
  10. COPYRIGHT (C) 1992-3 ANDREW WOODS
  11.  
  12. VERSION 1.0 - USER DOCUMENTATION (MARCH 1993)
  13.  
  14. SHAREWARE INFORMATION
  15.  
  16. EasyCalc  (EC for short) is SHAREWARE.  Alot of time and effort has gone into
  17. creating  this  program.  Please help me to continue programming applications
  18. like  EasyCalc  by  supporting  my  efforts  by registering.  If you use this
  19. program  regularly  (ie.  you have not deleted it after a month), then please
  20. send a fee of £15 pounds (UK) to:
  21.  
  22. Andrew Woods
  23. 1 Westwood Gardens
  24. Scarborough
  25. North Yorkshire
  26. YO11 2JQ
  27. UNITED KINGDOM
  28.  
  29. Send  the fee with your name, address, EasyCalc version number and details of
  30. your  Amiga  setup.   Printer  owners can print out the file, ORDER.DOC which
  31. will  generate  an  order  form  to  fill  in instead.  Feel free to send any
  32. comments  you  might  have  about  EasyCalc  with  your  order,  I  am always
  33. interested in user feedback.
  34.  
  35.  
  36. Registering will entitle you to the following priveledges:
  37.  
  38. * Help with any problems.
  39. * Copy of the most up-to-date version available.
  40. * Free minor upgrades.
  41. * Telephone hotline for your problems.
  42. * No irratating requester.
  43. * Your name will appear in the program.
  44. * Graphs for all your worksheets.
  45. * DreamLink (see end of document for info on this)
  46.  
  47. Please  note  that to comply with this programs shareware status, a requester
  48. will  appear  after  every 20 cells have been entered to remind you that this
  49. program  is  an "evaluation copy".  And hackers out there -- it is encrypted.
  50. I saw what you did to DiskManager2!
  51.  
  52.  
  53. EasyCalc is freely distributable as long as the following rules are obeyed:
  54.  
  55. * All of the files included must be present and unmodified in all
  56.   distributions.
  57. * EasyCalc  may  not  be  sold  commercially without my consent.  
  58. * Copyright and shareware notices MUST remain intact.
  59.  
  60.  
  61. DISCLAIMER
  62.  
  63. Here  comes  the  legal  bit.  EasyCalc is used entirely at your own risk.  I
  64. have spent a long time ensuring that EasyCalc is as reliable as possible, but
  65. I  can not accept any responsibility for any damage or loss that results from
  66. the use of this program.
  67.  
  68.  
  69. EASYCALC FEATURES
  70.  
  71. * FAST!   A  major design goal was to produce a spreadsheet that would leave
  72.   all  those  slow  Amiga  ones (commercial and PD) behind.  Even if you
  73.   "only" have  a  68000 Amiga with 1.3 you should find that you are never left
  74.   waiting for the screen to redraw or recalculate. If you have an A1200 or
  75.   simular then it flies!
  76. * Easy to use. Spreadsheets are fantastic programs that can really change your
  77.   business if you know how to use them. However getting past that initial
  78.   barrier of "what do I type to add this column?" is hard. I have added as
  79.   much help as is possible without making the program unusable. Hopefully
  80.   there is enough to get you through the initial barrier.
  81. * Features you need. A program like Lotus on the PC can cost upto £500 and
  82.   have hundreds of options/features. In EasyCalc I have only implemented
  83.   the common and usefull functions. If you want to complain remember what you
  84.   paid for EasyCalc!
  85. * Co-processor support. I'm not sure about this one. But I think on WB2.0
  86.   if there is a co-processor fitted then the maths libraries will use it. Even
  87.   without a co-processor the program recalculates very quickly. I use single
  88.   precision numbers. Although this means you can't have 16 dec.places accuracy,
  89.   it makes normal operation 100 times faster then double precision.
  90. * Uses reqtools. This is a standard Amiga library. This gives you WB2.0 style
  91.   requestors that are easy to use, whether you have 2.0 or not.
  92. * 160 Columns when printing.
  93. * No stupid assigns are needed.  I get everything from the current directory.
  94.   Why can't other programmers?
  95. * Intelligent!  For example if you try to delete a block of cells you will be
  96.   asked to confirm it.  However if you only want to delete one cell the
  97.   program doesn't bother you. Also if you enter a date into a cell it
  98.   automatically recognises it and processes it as a date.
  99.   
  100.  
  101. HISTORY OF EASYCALC
  102.  
  103. In  October 1991, I started work on a spreadsheet for a College C programming
  104. project.  This was written with TurboC on the KCS PC emulator.  By April 1992
  105. it  was  finished,  which  wasn't  bad going considering I was learning the C
  106. language  as  I was writing the spreadsheet!  Once the program was finished I
  107. sat back never wanting to see another spreadsheet ever again.
  108.  
  109. That was the end of the story until November 1992 when I needed a spreadsheet
  110. for  some  work.   I looked to the trusty Amiga for a PD/Shareware effort and
  111. was disgusted to find only three programs, all of them were unusable compared
  112. to  simular  programs on other computers.  I will not even mention commercial
  113. Amiga  spreadsheets  which  were  slow  and looked awfull.  In the end I used
  114. AsEasyAs  on  the PC.  But after this I decided to write the definitive Amiga
  115. shareware  spreadsheet,  but  an extra goal was to produce a spreadsheet that
  116. was easy to use, and was FAST.
  117.  
  118. EasyCalc  Version  1.0  was  born  in  March  1993.   After  five  months  of
  119. interrupted development.  In time I hope to produce some MAJOR updgrades.
  120.  
  121.  
  122. INTRODUCTION
  123.  
  124. EasyCalc  is  a spreadsheet designed to be both easy to use and fast.  If the
  125. program  looks  nice,  that wouldn't to be bad either.  Unlike other software
  126. where  the  author  writes  the program first, then bolts on a help system, I
  127. have designed the help into the program from the beginning.
  128.  
  129. WHAT IS A SPREADSHEET?
  130.  
  131. Think  of  a  spreadsheet  as  a  peice  of  blank  paper -- the page from an
  132. accounting  ledger  for  example.   On this "paper" you can write numbers and
  133. titles  for  sectons  of  the  accounts.   On  paper  you have add up columns
  134. manually,  with  a  spreadsheet  you  can  write a formular, the word SUM for
  135. example, makes the spreadsheet add up a range of numbers (called cells).  The
  136. power of spreadsheets lies in the fact that once a formular has been written,
  137. even if you change the column of numbers, the formular will automatically add
  138. them  up  again.  A program like EasyCalc has many different formulars, so it
  139. is capable of of much more than just adding columns.
  140.  
  141.  
  142. SYSTEM REQUIRMENTS
  143.  
  144. If your system can meet the following requirements then you can run EasyCalc.
  145.  
  146. Memory:    1/2 meg (1 meg recommended).
  147. WorkBench: 1.2, 1.3, 2.0, 3.0.
  148. Devices:   1 floppy minimum (!) (2 floppies or HD recommended).
  149. ChipSet:   Original, ECS or AGA (AA) work fine (PAL only).
  150. Processor: Any 680x0 processor (tested on 68000 and 68020)
  151.  
  152. If  you  have  WB1.3 and WB2.0 (ie.  a ROM switcher) then always run EasyCalc
  153. with  WB2.0.   EasyCalc  takes  advantage  of  some  2.0 features to speed up
  154. certain operations considerably.
  155.  
  156.  
  157. PROGRAM SPECIFICATIONS
  158.  
  159. Cell Format:  Single Precision, Motorola FFP.
  160. Number Range: 5.4E-20 -> 9.2E-18 for positive values.
  161.               2.7E-20 -> -9.2E18 for negative values.
  162. Cell Range:   127 rows x 127 columns.
  163. Cell Types:   Numeric/String/Formular.
  164. Evaluator:    Single-pass reverse polish evaluator and tokeniser.              
  165.  
  166.  
  167. OTHER FILES NEEDED
  168.  
  169. The  following  information may be usefull to users who are trying to install
  170. EasyCalc onto a harddisk or another bootable device:
  171.  
  172. EasyCalc requires the following libraries in the LIBS: directory:
  173.  
  174. * reqtools.library (V38)
  175. * mathieeedoubas.library
  176.  
  177. If a printer is to be used then the standard printer stuff is needed.
  178.  
  179. EasyCalc  also  has  two  directories  that  should  be  present  in the same
  180. directory as the EasyCalc program:
  181.  
  182. * /SYS - Needed to create icon files.  Also the shareware message is in here.
  183. Before  you think about removing it or changing it, the program will crash if
  184. it  is  tampared  with.   Sorry this was neccessary but blame the hackers for
  185. removing  my  shareware  message  from a £10 program I wrote.  The registered
  186. version  will  not have this file.  I hope you agree with my right to keep my
  187. shareware  message  intact.   In  practise  it will not interfere with normal
  188. program operation.
  189.  
  190. * /HELP - If this is missing then help will be unavailable.
  191.  
  192.  
  193. EASYCALC REFERENCE
  194.  
  195. CONVENTIONS USED IN EASYCALC
  196.  
  197. EasyCalc  makes  extensive  use of the latest version (V38) of ReqTools.  For
  198. those  who  don't  know,  ReqTools  is  a freely redistributable library that
  199. allows  any  programs  that support it to produce WB2.0 style requesters with
  200. ease.   Even  if  you "only" have 1.3 (or even less!) ReqTools will look like
  201. WB2.0.  All ReqTools requesters have several things in common.  For instance,
  202. any  gadget  that  has  a letter underlined can be activated by pressing that
  203. letter  on  the  keyboard.   If  a  gadget is in BOLD then you can also press
  204. RETURN  to choose it.  The right-most gadget (always some sort of cancel) can
  205. be  selected  by  pressing  ESCAPE.   Finally  of  course, all gadgets can be
  206. selected by clicking on them by the mouse.
  207.  
  208. As   well  as  the  features  offered  by  ReqTools,  EasyCalc  has  its  own
  209. conventions.   Messages  appear  at  the  bottom of the screen in a grey bar.
  210. These  messages  remain until a new message appears.  If a stopwatch appears,
  211. then the program is busy so don't start frantically clicking.
  212.  
  213.  
  214. SPREADSHEET MENUS
  215.  
  216. PROJECT MENU
  217.  
  218. CLEAR SHEET (Amiga-Z)
  219. Removes  the  current  worksheet  from  memory.   Choose  this  option  and a
  220. requester  will  appear asking you to confirm your choice.  Choose Ok and the
  221. spreadsheet  will be returned to the initial state.  Please not if you have a
  222. big  worksheet  to  remove,  then it may take some moments to clear.  Just be
  223. patient.
  224.  
  225. LOAD SHEET (Amiga-L)
  226. The  ReqTools  file  requester will appear.  Choose a file to load or cancel.
  227. Remember to save the existing worksheet first.
  228.  
  229. SAVE SHEET (Amiga-S)
  230. Using  the  ReqTools file requester, choose the file to save as.  Cancel will
  231. return you to the (unaffected) worksheet.
  232.  
  233. ABOUT (Amiga-A)
  234. This  simply  displays  some  information  about  the program.  If this is an
  235. unregistered copy of EasyCalc then you will be seeing it alot!
  236.  
  237. QUIT (Amiga-Q)
  238. Exits  from  EasyCalc  (after  asking  you).  Remember to save your worksheet
  239. first, because it will be lost when you quit.
  240.  
  241.  
  242. EDIT MENU
  243.  
  244. CUT (Amiga-X)
  245. Removes the marked block (see BLOCK MARKING) from the worksheet and stores it
  246. in  the  internal clipboard.  When you have copied something to the clipboard
  247. don't forget it!  The clipboard is NOT saved with the worksheet.
  248.  
  249. COPY (Amiga-C)
  250. Copies  the  marked block into the internal clipboard.  The data is also left
  251. on the worksheet.
  252.  
  253. PASTE (Amiga-V)
  254. Copies  data  from the clipboard into the marked block.  Please note that any
  255. formulars  may be modified, depending on the copy mode (see OPTIONS MENU/COPY
  256. RELATIVE).
  257.  
  258. DELETE (Amiga-D)
  259. Simply  removes the marked block from the worksheet.  Be carefull this option
  260. will happily remove the block with no way of restoring it.
  261.  
  262.  
  263. OPTIONS MENU
  264.  
  265. COPY RELATIVE (Amiga-O)
  266. When performing copying operations on cells, this option will modify the cell
  267. contents. For example if you copy a cell with the formular:
  268.  
  269. =10+A1
  270.  
  271. Then paste it down two cells down and across, then the cell will be become:
  272.  
  273. =10+C3
  274.  
  275. See  how  it  works?   The  delta x and y (the direction of movement from the
  276. source) is added to all cell references.  This is usefull for pasting simular
  277. formulars  down  all over the place with little modification.  If you turn it
  278. off,  then  formulars will be unmodified (usefull if you have a cell you want
  279. referenced  in  all  the  formulars, like the VAT rate).  Both modes are very
  280. usefull,  remember to use the right one!  and it will save you a lot of work.
  281. See later on for details on absolute cell references.
  282.  
  283. AUTO RECALC (Amiga-U)
  284. With  this  option on, everytime you enter a formular or a number, the entire
  285. worksheet  is  recalculated.   This  is usually quite rapid but if you have a
  286. large worksheet or perform multiple iterations then this can be slow.
  287.  
  288. ITERATIONS (Amiga-I)
  289. If  your worksheet has "forward references" then you will need to recalculate
  290. the  worksheet  more  than once to resolve these.  Remember that large values
  291. can cause the recalculation to slow to a snails pace.  If the recalc is slow,
  292. then turn off the autorecalc and just recalc when you need to.
  293.  
  294. ICON FILES (Amiga-F)
  295. This  toggles whether icon files are created with saved worksheets.  If icons
  296. are  created  then you can invoke EasyCalc just by clicking on the worksheets
  297. icon (which will automatically load the worksheet as well).
  298.  
  299. AUTOMOVE (Amiga-M)
  300. When you choose this option, a requestor will appear with five choices.  Four
  301. of  them  control  the direction you want the cursor to move after a cell has
  302. been  entered (up/down etc).  The last (NONE) causes no movement after a cell
  303. has been entered.
  304.  
  305. EUROPEAN DATES (Amiga-E)
  306. When  you enter a date, it is in the format:  DD-MM-YY.  This is the standard
  307. European  format.   However  our  Trans-Atlantic  cousins have their own date
  308. system,  MM-DD-YY.  If the check mark is NOT set next to this option then all
  309. dates are in American format.  However remember that this option only effects
  310. cells  entered AFTER this is changed.  If you want to change the format of an
  311. existing cell then press F2 while over the cell then press RETURN.  This will
  312. force EasyCalc to recalculate the date in the new format.
  313.  
  314.  
  315. GLOBAL MENU
  316.  
  317. COLUMN WIDTH (Amiga-T)
  318. Choose this and you can enter the width that all the columns are to become.
  319.  
  320. RECALC NOW (Amiga-R)
  321. This causes the whole worksheet to be recalculated.
  322.  
  323. PRECISION (Amiga-P)
  324. This  lets you choose how many decimal places to display in cells.  Note:  If
  325. you  are  using  general  format cells then this value is ignored.  Also this
  326. function only affects cells entered AFTER this was changed.
  327.  
  328. CELL FORMAT (Amiga-B)
  329. Lets  you  choose  the  format  to display cells in.  This only affects cells
  330. entered AFTER this option is set.  Currently there is only two different cell
  331. formats: 
  332.  
  333. * General - displays as many decimal places as neccesary.
  334. * Fixed   - displays the specified number of places no matter what.
  335.  
  336. These  should  cover most of your needs.  As EasyCalc is developed there will
  337. DEFINITLY be more added.
  338.  
  339.  
  340. AT COLUMN MENU
  341.  
  342. INSERT COLUMN (Amiga-N)
  343. Inserts  a column at the specified cursor position.  All cell references that
  344. are effected are adjusted so that they still point to the correct data.
  345.  
  346. DELETE COLUMN (Amiga-Y)
  347. Deletes  the  current  column  (ie.   the  one at the cursor position).  Cell
  348. references are updated as above.
  349.  
  350. SET WIDTH (Amiga-W)
  351. Allows  you  adjust  the width of the current column.  You can use the cursor
  352. keys  to  adjust  the  width until all the data is visible.  F1 allows you to
  353. enter  a number for the column width.  Press HELP to bring up some extra info
  354. on this option.
  355.  
  356. INSERT ROW (Amiga-G)
  357. Inserts a row at the current cursor position.
  358.  
  359. DELETE ROW (Amiga-J)
  360. Deletes the current row.
  361.  
  362.  
  363. PRINTER MENU
  364.  
  365. XX CPI
  366. The  first  four options control how many characters can be output on a line.
  367. NOTE:   If you want to use 20 CPI (160 columns) then you must set preferences
  368. to  160  columns as well.  These options adjust the width of the text so even
  369. if you only have a ten inch carriage, you still will be able to fit your wide
  370. sheets  in.   In  time  I  hope  to  provide a sideways printing utility (for
  371. registered users of course!)
  372.  
  373. RESET PRINTER
  374. Resets the printer to all the defaults set in preferences.
  375.  
  376.  
  377. BOOKMARKS MENU
  378.  
  379. SET MARK X (Amiga- 1->5 + SHIFT)
  380. Remembers the current cursor position, so that you can quickly return to this
  381. spot.
  382.  
  383. GOTO MARK X (Amiga- 1->5)
  384. Returns to the defined bookmark.
  385.  
  386.  
  387. THE ICON BAR
  388.  
  389. This describes the boxes near the top of the screen.
  390.  
  391. LOAD/SAVE
  392. Same as menu options Save and Load.
  393.  
  394. PRINT
  395. A  requester  appears  first to give you a chance to cancel, or position some
  396. paper  or  get  some  extra  help  on  printing.   If  you choose OK, another
  397. requester  will  appear  asking  you  what  sort  of  print  out  to perform.
  398. Currently there are three choices:
  399.  
  400. * Screen     - Prints out everything that is visible on the screen.
  401. * Block      - Prints out everything in the marked block.
  402. * Everything - Prints out the entire worksheet (carefull!)
  403.  
  404.  
  405. B/I/U/P
  406. Controls  the  style  attribute of all cells in the marked range.  B will add
  407. BOLD  to  the  range,  I is italics, U is underline and P will cancel all the
  408. rest.
  409.  
  410. L/C/R
  411. Controls  the  justification  of  all the cells in the marked range.  L makes
  412. everything  left  justified,  C  will  center  the  cells,  and  R will right
  413. justify.
  414.  
  415. PREC/LOCK/UNLOCK/FORMAT
  416. Prec  allows you to enter the precision of the cells in the range.  Lock will
  417. lock  the cells (preventing you from editing them), Unlock will reverse this,
  418. and Format will let you change the cell format for the range.
  419.  
  420.  
  421. BLOCK MARKING
  422.  
  423. More  accuratly called a range.  A block is an area of highlighted cells that
  424. you  can  perform an operation on.  An operation can be anything from cutting
  425. the cells out and storing them in memory, to printing them out.
  426.  
  427. To  mark  a  block  just  "drag" your mouse pointer.  ie.  Hold down the left
  428. mouse  button at the first cell to mark.  Then move the mouse until all cells
  429. you  are  interested in are highlighted.  At this point release the mouse and
  430. the  block will be marked.  Any operations from the edit menu or the icon bar
  431. will act on just this range (instead of the whole worksheet).  If you want to
  432. mark  a  block bigger than the visible screen then move the mouse to the edge
  433. of the screen and the screen will scroll (moving the block with it).
  434.  
  435. If  you  choose a block function and you have not marked a range, the current
  436. cursor position is considered to be the block.
  437.  
  438.  
  439. ENTERING DATA
  440.  
  441. The  moment  you  enter  an  alpha-numeric  character, the spreadsheet enters
  442. COMMAND  MODE.   That  is,  all the menus are ghosted and everything you type
  443. appears at the top of the screen.
  444.  
  445. Keys available in command mode:
  446.  
  447. Left + Right cursor keys - moves left and right.
  448. Escape                   - aborts input and leaves everything unchanged.
  449. Return                   - enters the data.
  450. Control + X              - clears the input.
  451. HELP                     - see the HELP SYSTEM below.
  452.  
  453. In  addition  if  you  click  the mouse onto a cell, then that cell reference
  454. appears  in the formular at the top of the screen.  This makes it easier then
  455. following  the  column and row at the sides and entering it yourself.  If you
  456. drag  the  mouse  (like  marking a block) then when the mouse is released the
  457. cell range will appear in the formular.
  458.  
  459. In EasyCalc there are three types of cell:
  460.  
  461. Formular
  462. String Constant
  463. Numeric Constant
  464.  
  465. To  denote  the  type  of  data  you are entering, EasyCalc has the following
  466. rules for the first character of the input:
  467.  
  468. Start string with    Means
  469. '                    String (left justified)
  470. ^                    String (centered)
  471. "                    String (right justified)
  472. =                    Formular
  473. A..z                 String Left justified (' will be added)
  474. 0..9                 Numeric cell
  475. \                    String (repeats second character to width of column)
  476. -                    Negative numeric cell
  477.  
  478. In a string, the first character is not displayed.
  479.  
  480. Examples:
  481.  
  482. 'hello  - left justified string
  483. \-      - displays a line of '-' (to fill the whole column)
  484. -3      - a numeric cell with -3 is created
  485. Go away - left justified string (a ' is added to the start of string)
  486. =10+2   - formular is diplayed 
  487.  
  488. Every  cell  in  EasyCalc has a unique reference which is described by taking
  489. the  letter  from the column at the top of the screen and the row number from
  490. the  left hand side of the screen.  Using the system, the very first cell (in
  491. the  top  left  corner)  is called A1.  The next cell across is B1 and so on.
  492. The  cell  below B1 is called B2 etc.  In a formular you could have something
  493. like =10+B6.  This would get the value in cell B6 and add 10 to it.  Then the
  494. result  would  be  displayed in this cell.  This ability allows you to have a
  495. global  VAT  rate (for example) and have all cells use the same VAT rate.  If
  496. the  VAT  rate changes, then it would be easy to change this one cell and all
  497. the other cells would change to reflect the new rate.
  498.  
  499. In  addition to cell references, there is something else called a cell range.
  500. Some  functions  (like  SUM)  take a range of cells and display an answer.  A
  501. cell  range is a rectangle of cells, everything in the rectangle becomes part
  502. of  the  range.   Normally you describe a range by the cells that make up the
  503. top  left  corner and bottom right corner of the range.  In a formular a cell
  504. range that was to include A5 to G8 would be written A5:G8.  Simple really?
  505.  
  506. While  entering  a formular, if you want to add a cell range into a formular,
  507. then  you  can either enter the range manually with the keyboard, or drag the
  508. mouse  (as  if you were marking a block).  When you have finished marking the
  509. block, it will appear in the formular.
  510.  
  511.  
  512. ABSOLUTE CELL REFERENCES
  513.  
  514. Normally  when  you  copy  a  formular cell to another location, all the cell
  515. references  are adjusted so that the formular still works.  If you don't want
  516. the  formulars  to  be  adjusted, you could always turn off the COPY RELATIVE
  517. option.   However  there  are  times  when this is not enough.  For instance,
  518. suppose you had a formular which referenced a cell that contained the current
  519. UK  VAT  rate  but  you  wanted  all  the other cell references to be free to
  520. change.   Everytime  you copied the cell, it would no longer point to the VAT
  521. rate and you would have to change it manually.  In EasyCalc there is a symbol
  522. that  you  can add to cell references that makes them ABSOLUTE.  Whether COPY
  523. RELATIVE is on or not, the cell reference will not change when it is copied:
  524.  
  525. If  the  VAT  rate  was  stored  in  D6 (for example), then the absolute cell
  526. reference  would  be,  $D$6.   Basically  you  stick a $ in front of the cell
  527. reference.  Notice that there is a $ infront of the 6 as well as the D.  This
  528. is  because  you  can make the row or the column absolute or both.  $D6 would
  529. allow  the  6  to change, while the D would remain unchanged.  D$6 would lock
  530. the 6 while allowing the D to be changed.  The rule is place the $ infront of
  531. the unit to lock.
  532.  
  533.  
  534. GREEKING
  535.  
  536. If  you  have a numeric or formular cell and the value in it suddenly changes
  537. to  a  '*'  then don't worry this is called GREEKING.  It means the answer in
  538. the  cell takes up more space then can fit in the cell.  Just make the column
  539. width bigger and the answer should reappear.
  540.  
  541.  
  542. DATES
  543.  
  544. If you enter a date. ie any string in the following format:
  545.  
  546. DD-MM-YY
  547.  
  548. then  EasyCalc  will  recognise that a date has been entered.  If you want to
  549. enter  American dates then make sure the option, "EUROPEAN DATES" is not set.
  550. Dates  are just like any other EasyCalc string so the first character denotes
  551. whether  the  justification  etc  as  normal.  Including the format character
  552. ("^')  a  date  string  MUST  be  9  characters long otherwise it will not be
  553. recognised as a date.
  554.  
  555.  
  556. MATHS ERRORS
  557.  
  558. In  maths, certain operations can cause an undefined result.  For instance if
  559. you  try  to  divide  something by zero, it will cause EasyCalc to produce an
  560. error  requester.   Another error if performing a SQR (sqaure root) on a zero
  561. or negative value.
  562.  
  563. EasyCalc will trap errors like:
  564.  
  565. =10/0
  566.  
  567. But if you have formular like:
  568.  
  569. =10/B6
  570.  
  571. EasyCalc  will  trap this error if B6 contains zero.  But imagine you changed
  572. this  cell so it contained zero.  EasyCalc would miss the error and you would
  573. get  a  wierd  value.   Fortunatly  it is easy to spot, because the cell will
  574. evaluate to:
  575.  
  576. -0.000542E+14
  577.  
  578. This  is  obviously invalid.  I could have had an error message popup but the
  579. additonal  checking  would  have  slowed  EasyCalc  down  quite a bit.  If it
  580. becomes a problem for any registered users then I will change it.
  581.  
  582. If you want to prevent the above problem, then try this formular:
  583.  
  584. =@IF(b6=0,10,10/b6)
  585.  
  586. This  will  make the number 10 appear if a divide by zero error would result.
  587. Otherwise the normal divide is performed.
  588.  
  589.  
  590. FORMULARS
  591.  
  592. OPERATORS:
  593.  
  594. An operator is something that performs an action on an expression.  Basically
  595. that  means  +-*/  etc.   Below  is  a  list  of  available  operators, and a
  596. description of the priority system:
  597.  
  598. (,)
  599. ^,>,<,>=,<=,<>,=
  600. *,/
  601. +,-
  602.  
  603. They  have  been listed in order of priority (also called precendance).  If O
  604. Level  maths  theory  has  long  since  escaped you then let me explain.  For
  605. example if you had 10+2*3, the laws of precendance would give an answer of 16
  606. (2*3  then  +10),  this  is because multiply has a higher precendance then +.
  607. The  highest  precendance  of  all  goes to brackets.  Using brackets you can
  608. force  the  order  something is calculated in.  The previous example would be
  609. (10+2)*3 to give 36.  By knowing about precendance you can order calculations
  610. to minimise brackets and speed up the calculation.
  611.  
  612. Some  of  the  above  operators  may  look  unfamiliar  to  you.   Here  is a
  613. description of each:
  614.  
  615. (,) - See precendance above.
  616. ^  - Raise to the power of.  eg.  2^4 would be "2 raised to power of four" or
  617. would be written as 2 followed by a little four in the corner.
  618.  
  619. The  next  few  are  called  comparisions,  they are normally used in the @IF
  620. command  to  compare  numbers however you may need them for logical functions
  621. sometimes. Basically they show if something is "true":
  622.  
  623. >  -  Greater  than.   Equals -1 if the value on the left of the > is greater
  624. than the value on the right. Otherwise it returns 0.
  625. <  - Less than. The opposite of above.
  626. >= - Greater than or equal to.
  627. <= - Less than or equal to.
  628. <> - Not equal to.
  629. =  - Equal to.
  630.  
  631. *,/,-,+ - Do I need to explain these?
  632.  
  633. Examples:
  634.  
  635. =10>5 would give -1. (10 IS greater than 5)
  636. =5<>5 would give 0. (5 DOES equal 5)
  637. =5<=5 would give -1. (5 IS less than or equal to 5)
  638.  
  639. Note  the  equal sign at the start of the examples.  This tells EasyCalc that
  640. what follows is a formular and not a string or something.
  641.  
  642.  
  643. AVAILABLE FUNCTIONS:
  644.  
  645. A  function  is something that takes an expression and returns a value.  Here
  646. is  a complete description of all the available functions in EasyCalc:  (note
  647. all functions start with a @)
  648.  
  649. @ABS(expression)
  650. Returns the absolute value (ie. always a positive number)
  651.  
  652. @ATN(expression)
  653. Returns the arctangent of the value (in radians)
  654.  
  655. @AVG(range)
  656. Returns the average value of all the cells in the range.
  657.  
  658. @CINT(expression)
  659. Returns the whole number of the expression.
  660.  
  661. @COS(expression)
  662. Returns the cosine of the value in radians.
  663.  
  664. @DEG(expression)
  665. Converts the expression from radians to degrees.
  666.  
  667. @EXP(expression)
  668. Returns the exponent of the expression.
  669.  
  670. @FIX(expression)
  671. Truncates the expression to a whole number.
  672.  
  673. @IF(expression,true expression,false expression)
  674. If  the  expression  is  true  (ie.   evaluates  to  none zero) then the true
  675. expression is evaluted and the result displayed, else the false expression is
  676. calculated.
  677.  
  678. @INT(expression)
  679. Rounds down the expression to a whole number.
  680.  
  681. @LOG(expression)
  682. Returns the natural (base e) logarithm of the expression.
  683.  
  684. @MAX(range)
  685. Returns the maximum value in cell range.
  686.  
  687. @MIN(range)
  688. Returns the smallest value in the cell range.
  689.  
  690. @RAD(expression)
  691. Converts the expression from degrees to radians.
  692.  
  693. @RND(expression)
  694. Returns  a  random  number  between  0  and expression-1.  Every time this is
  695. evaluted it will change.
  696.  
  697. @SIGN(expression)
  698. Returns  the sign of the expression.  If the expression was negative, then -1
  699. is  returned, 0 will return 0 and a positive (none zero) expression will give
  700. +1.
  701.  
  702. @SIN(expression)
  703. Returns the sine of the expression (in radians).
  704.  
  705. @SQR(expression)
  706. Returns the square root of the value.
  707.  
  708. @SUM(range)
  709. Returns the total of all cells in the range.
  710.  
  711. @TAN(expression)
  712. Returns the tangent of the expression (in radians).
  713.  
  714. @VAT(expression)
  715. Returns 17.5% of the expression.
  716.  
  717.  
  718. HELP SYSTEM
  719.  
  720. If  you are entering data in the command mode and you hit the HELP key, three
  721. things can happen:
  722.  
  723. * If  you  were  over a formular (over the @ in the formular), then detailed
  724.   help on that formular will appear.
  725. * If  you  were  over nothing in particular then a list of all the available
  726.   keys  will  appear.   From  this  screen, you will be able to get a list of
  727.   formulars and a list of cell modifiers.
  728.  
  729. Many  other EasyCalc requesters have a Help option.  If you get a division by
  730. zero  error,  then you will have three options, Correct, Help and Cancel.  If
  731. you choose Help then some detailed help will appear on that error.
  732.  
  733. When the Help window appears, the following keys are available:
  734.  
  735. F1/F2 - Loads in another (related) peice of help.  See the bottom of the Help
  736.         window for more info.
  737. ESC - Closes the window.
  738. Cursor Keys - Scrolls up and down the text.
  739.  
  740.  
  741. LOADING DATA
  742.  
  743. There are several ways to load data into EasyCalc:
  744.  
  745. * Choose LOAD in the menu or the icon bar.
  746. * Double click on an EasyCalc project icon.
  747. * Use extended selection on an EasyCalc project icon.
  748.  
  749. The  second  two options will automatically invoke EasyCalc and then load the
  750. data  file.  The first option will bring up the ReqTools file selector.  This
  751. works like any file selector you have probably used before.
  752.  
  753.  
  754. TECHNICAL INFORMATION
  755.  
  756. EASYCALC V1 FILE FORMAT
  757.  
  758. For technical users who may want to use EasyCalc generated files in their own
  759. programming  (a  graphs maker for example), here is the current EasyCalc file
  760. format:
  761.  
  762. Size    Function
  763. LONG  'EASY'  text to identify an EC files.
  764. WORD  '10'    text to flag the file version number.
  765. BYTE          last X (0-127) position of screen when saved.
  766. BYTE          last Y (1-127) position of screen when saved.
  767. BYTE          last X (0-127) position of cursor when saved.
  768. BYTE          last Y (1-127) position of cursor when saved.
  769. BYTE          number of column widths that follow (0-128).
  770. BYTEs         column widths, one byte for each.
  771. ...
  772. BYTE          type of data that follows:
  773.               1=Cell data, 2=Graph data, 3=No more data, 4=Prefs1 block.
  774.  
  775. If cell data follows then each cell is stored like this:
  776.  
  777. BYTE          Cell X position
  778. BYTE          Cell Y position
  779. BYTE          Cell precision
  780. BYTE          Cell text style
  781. BYTE          Cell justification
  782. BYTE          Cell locked
  783. BYTE          Cell format (0=general, 1=Fixed) 
  784. BYTE          Cell type, 1=string, 2=number, 3=expression
  785. LONG          Cell value (FFP single prec)
  786.  
  787. If type<>2 (number) tben
  788.  BYTE          String length
  789.  BYTEs         String
  790. Endif
  791.  
  792. The end of a block is denoted by:
  793. BYTE  200      End of block
  794.  
  795. If this was the final block then:
  796. BYTE  3        End of all blocks 
  797.  
  798.  
  799. WB2 FEATURES
  800.  
  801. As  EasyCalc  development  continues  more  WB2  functions will be exploited.
  802. Conditional code is used so that EasyCalc will run on 1.3 or 2.0 (or 3.0) and
  803. will only try to use the WB2.0 features if you are actually running 2.0.  The
  804. following WB2.0 features are used:
  805.  
  806. *  Buffered  Read/Writes - Saving a big file took 1.17 mins on 1.3, but using
  807. these new 2.0 features I got that down to 20 secs!
  808.  
  809. *  Public  Screen  -  If you have 2.0 then EasyCalc is a public screen called
  810. ECALC.   I  don't  know  how  usefull  you  will  find it (I never use public
  811. screens) but it is there if you want it!
  812.  
  813. For  the  next  version  of EasyCalc I hope to add AppItem/Icons, maybe AREXX
  814. too.  Obviously to get in on the action you will have to register!
  815.  
  816.  
  817. "COMPRIMISES" MADE BY THE AUTHOR
  818.  
  819. During  the  development of EasyCalc, several comprimises were taken by me to
  820. ensure  the  product  was  the  best  possible.   If  you are searching for a
  821. function  and  wondering  why  I  have  left  it out, then let me explain the
  822. EasyCalc design process and it should make things clearer:
  823.  
  824. *  When I started EasyCalc I could either write another Amiga spreadsheet and
  825. have exactly the same functions as them -- but what would be the point?  When
  826. I  looked  at  Amiga  spreadsheets  I was very shocked.  I saw two commercial
  827. ones, and three PD ones.  None of them were any good.  The PD ones were slow,
  828. while the commercial ones were slow, but had lots of features (!)
  829.  
  830. *  The  maximum size of an EasyCalc worksheet is 127 rows by 127 columns.  If
  831. you  think  this  is  restrictive  (MaxiPlan  can 32000 x 32000), then let me
  832. explain  some  maths  to  you.   If  you filled every cell with a number then
  833. nearly  400K  would  be  needed  in memory.  Now lets say that a third of the
  834. cells  are  strings (with the text "Hello"), and the usage increases to about
  835. 500K.   Now imagine saving all that to disk.  I did a test comparing MaxiPlan
  836. with  EasyCalc on the worksheet described above (127 x 127), and here are the
  837. result:
  838.  
  839.             Time to Save         File Size
  840. MAXIPLAN 4  38 secs              390000 bytes
  841. EASYCALC 1  55 secs              189000 bytes
  842.  
  843. See  the comprimise?  EasyCalc takes longer to save (and especially load) but
  844. the  files are half the size!  If you are running on floppy then you need all
  845. the  space  you  can  get.   The  next version of EasyCalc should have a much
  846. quicker time, when I figure out how to speed it up!
  847.  
  848. *  Some spreadsheets allow you to display cells in lots of different colours.
  849. I decided against this because:
  850.  
  851. a) It slows the screen update.
  852. b) When you print it out, it will be in 1 colour anyway.
  853. c) Saved files would be bigger.
  854. d) EasyCalc already has BOLD, ITALIC, UNDERLINE which seemed a good enough.
  855. e) The program would need a lot more memory (1.5 meg?) to run.
  856.  
  857. * I have used single precision numbers throughout EasyCalc.  MaxiPlan can use
  858. double  precision.   Before  you complain, do you need 16 dec places accuracy
  859. for  your  invoices?   In  addition  double precision is 100 (yes 100!) times
  860. slower than single precision, so it seemed a fair comprimise.
  861.  
  862. * EasyCalc doesn't have any "scroll-bars".  I did not implement these because
  863. of  the  slow  down  in the screen update they would cause.  If you want them
  864. then mention it in your program registration.
  865.  
  866.  
  867. HINTS AND TIPS
  868.  
  869. *  If  you  have a program like FastFonts or BlitzFonts, then run that before
  870. you  run EasyCalc.  This will make screen update about twice as fast.  FF can
  871. be  found  in  the  C:   directory of a 1.3+ WB disk.  If you have 2.0 or 3.0
  872. don't bother because EasyCalc already flies!
  873.  
  874. * If entering large amount of data, then turn auto recalc OFF.
  875.  
  876. *  Make sure you are using the 1.3+ versions of all the maths libraries.  The
  877. versions  supplied  on 1.2 are slower.  If you have installed an old peice of
  878. software  on  your  harddisk  recently,  then it may have overwritten the new
  879. libraries so do check.
  880.  
  881. * If you are entering lots of columns of data, then turn automove on.
  882.  
  883. *  Use  the FastFileSystem (WB2+) and the command AddBuffers (any WB) on your
  884. EasyCalc disk.  This will speed up loading and saving, but will also make the
  885. help system run quicker.
  886.  
  887. *  If  you have a program like PointerX (WB2 only) then the stopwatch will be
  888. animated!  Which looks very pretty!
  889.  
  890. *  If  you  have  a program like ExpLayer (WB2 only) then all requesters will
  891. explode onto the screen.  (Who says spreadsheets are boring?)
  892.  
  893. *  If  you have WB2.0 and 1.3 (ie.  you have a choice) always run EasyCalc in
  894. WB2.0.   EasyCalc  has  several  WB2  enhancements  (the load routine is MUCH
  895. quicker in WB2) and the screen update is quicker as well.
  896.  
  897.  
  898. EASYCALC UPGRADE POLICY
  899.  
  900. EasyCalc  is  not  finished!  I have a massive list of things I would like to
  901. add to it when I get more time.  For registered users the following apply:
  902.  
  903. MAJOR  UPGRADES
  904. Usually cost about a fiver because there is a lot of new work in the upgrade.
  905. Registered  users  are  informed  when  a major upgrade is available.  If the
  906. upgrade  is a REALLY major improvement then it may appear in magazine reviews
  907. as  well.  However registered users will be told long before any such reviews
  908. appear.   Major  improvements  as suggested by the users will appear in these
  909. releases.
  910.  
  911. MINOR UPGRADES
  912. These  can be ready at any time, and usually consist of bug fixes and new (or
  913. improved)  features.   Minor  suggestions  from  registered  users will often
  914. appear  in  these releases.  I can't afford to write to every registered user
  915. when  every  minor  upgrade appears, but if you are registered then send me a
  916. disk and a SAE and I will copy the latest release onto it for you.
  917.  
  918. REGISTERED USERS
  919. If  you find a bug in this or you have an idea for an improvement then please
  920. contact  me.  Either write or phone (in the evening) and I will do my best to
  921. fix  the  situation.   I have had plenty of experience supporting my previous
  922. shareware release, DiskManager so I can offer helpfull support.
  923.  
  924.  
  925. EASYCALC - THE FUTURE
  926.  
  927. EasyCalc  has  a  bright  future.   In  V1.1  of  EasyCalc, the graph module,
  928. DreamGraph, will make an appearance.  This is a seperate module but will make
  929. use  of  something  called  DreamLink  which  allows programs to talk to each
  930. other.   If  you  have  ever  looked  at ARexx and been daunted by learning a
  931. programming  language,  then  DreamLink  is  for  you.   It  is  a  completly
  932. transparent  way  of  making  programs  talk  to  each  other.   If you are a
  933. programmer  of  shareware applications then contact me for detailed technical
  934. info  on  DreamLink.   Already  several  programs are being written that will
  935. feature  DreamLink.   YOU could add value to your product by incorparating an
  936. DreamLink.
  937.  
  938. As  EasyCalc  develops  (with  your support) it will change from being what I
  939. think  a  spreadsheet should be like, to what YOU think one should be.  Which
  940. means as far as YOU the user is concerned, EasyCalc can only get better.
  941.  
  942. I  hope  to  do a WB2.0 version of EasyCalc that exploits the new features of
  943. the  new  operating  system.   At  present  WB2.0 code is embedded in the one
  944. version  of  EasyCalc.   If  you have a 1.3 machine don't worry EasyCalc will
  945. support WB1.3 until everyone has 2.0!
  946.  
  947.  
  948. DREAMLINKS - TELL ME MORE!
  949.  
  950. I  came  up  with  DreamLink  to  allow  all Amigas to have a system like WB2
  951. commodities.   In  the  coming  months,  the  following  programs will become
  952. available to exploit this new system: 
  953.  
  954. * Spool  - Printer spooler.  Any file sent to this is copied into memory and
  955. printed at leisure, without tying up the application.
  956.  
  957. * DreamManager  -  Controls  all  programs  with  a DreamLink.  This will be
  958. simular to the WB2 commodities exchange program.
  959.  
  960. * AutoSave - Makes all DreamLink programs save there data at a set time.
  961.  
  962. * DiskManager  III  - This will be the second major application to feature a
  963. DreamLink.   This  is  the  latest version of my successfull disk catalogger.
  964. (see below for comments)
  965.  
  966. *  DreamGraph - Any program with a DreamLink will be able to get graphs drawn
  967. of any data. This program can handle it all.
  968.  
  969. All  the  smaller  programs will be available in the public domain.  But this
  970. shareware version of EasyCalc does NOT have an DreamLink.
  971.  
  972. Remember programmers:  just by adding a DreamLink you will have access to the
  973. facilities  available  in  the  above  programs.   You  don't  even  have  to
  974. specically program for a certain application.  If you are intrigued, then get
  975. the  technical  info from me.  It doesn't cost anything but it will add value
  976. to your application.
  977.  
  978.  
  979. EASYCALC - CURRENT PROBLEMS
  980.  
  981. I  have  put  this  section at the end of document in the hope that you won't
  982. find  it!   Seriously  though,  this  section lists things in EasyCalc that I
  983. consider to be problems that need fixing:
  984.  
  985. *  Fixed Format - this truncates a number instead of rounding it.  Truncating
  986. is  MUCH  quicker than rounding.  I am going to add a proper rounding format,
  987. but  I may leave this one in to give YOU the choice of speed OR rounding.  At
  988. least  I  give  you  the  choice unlike other Amiga spreadsheets that seem to
  989. concentrate on features and forget about keeping it fast.
  990.  
  991. *  Loading  and  Saving files - this is (in my mind) unexceptably slow on 1.3
  992. machines.  I will DEFINITLY fix this! (if you know how, contact me...)
  993.  
  994.  
  995. CREDITS
  996.  
  997. Chris Wainwright         - Wrote the installer. Comments.
  998. Keith Williams at Kew=II - Comments and testing.
  999. Simon Coulson            - Comments.
  1000. Nico Francois            - ReqTools (the best!)
  1001. Amiga                    - For the best computer ever.
  1002.  
  1003.  
  1004. OTHER PRODUCTS AVAILBLE FROM THE AUTHOR
  1005.  
  1006. DISKMANAGER 2.0D
  1007. Disk  catalogger  and  organiser.  Allows those elusive programs on Utilities
  1008. disk  16  to  be  found  quickly.   Amiga  Shopper  (Britains premier serious
  1009. magazine) gave this 9/10 and said "anyone with a large collection of floppies
  1010. should have DiskManager".
  1011.  
  1012. COST: £10
  1013.  
  1014. The  above  is compatible with any Amiga and ANY Workbench.  Whether you only
  1015. have 1/2 a meg or 8 megs. The only requirement is a PAL computer.